Call classification, also referred to as call-progress monitoring, is the term applied to determining what type of signals are present on a communications link. Generally, call classification needs to distinguish between noise, silence, voice (including other audio, such as music and announcements), and control signals (e.g., control tones), and to identify the particular control signals.
Various algorithms are commonly used for voice detection, such as peak-signal detection, rate-of-change of zero crossings, and auto-correlation. They tend to not be very accurate in distinguishing voice from other sounds, such as noise. For example, existing algorithms often mis-detect clicks and pops produced by analog phone lines as voice. Also, many existing algorithms take a long time to identify presence of voice signals. But time is very critical in call processing, which requires substantially “real-time” call classification.
The use of Goertzel filters is known for control-tone detection and identification (see, e.g., U.S. Pat. Nos. 5,521,967 and 6,370,244, and the predictive call dialer from Avaya Inc. (formerly Mosaix Inc.), Redmond, Wash., USA). A Goertzel filter is an implementation of a Discrete Fourier Transform as a digital filter that is structured to reduce the number of computations required to compute the transform. It also requires minimal signal buffering because each signal sample is processed when received (i.e., substantially in “real-time” with only a small delay). However, call classifiers have not employed Goertzel filters for voice (audio) detection. For example, while U.S. Pat. No. 5,521,967 employs Goertzel filters for tone detection and identification, it employs a low-pass filter for voice detection. Since the low-pass filter allows both voice and noise signals to pass, the detector is susceptible to mis-identifying high noise levels as voice.